import { request } from "../../request/index.js";
/* 
1 页面被打开的时候 onShow 
  0 onShow 不同于onLoad 无法在形参上接收 options参数 
  0.5 判断缓存中有没有token 
    1 没有 直接跳转到授权页面
    2 有 直接往下进行 
  1 获取url上的参数type
  2 根据type来决定页面标题的数组元素 哪个被激活选中 
  2 根据type 去发送请求获取订单数据
  3 渲染页面
2 点击不同的标题 重新发送请求来获取和渲染数据 
 */
Page({
  data: {
    tabs: [
      {
        id: 0,
        value: "全部",
        isActive: true,
      },
      {
        id: 1,
        value: "待付款",
        isActive: false,
      },
      {
        id: 2,
        value: "待发货",
        isActive: false,
      },
      {
        id: 3,
        value: "退货/售后",
        isActive: false,
      },
    ],
    orders:[]
  },

  onShow(options) {
    const token = wx.getStorageSync("token");
    if (!token) {
      wx.navigateTo({
        url: "/pages/auth/index",
      });
      return;
    }
    //  console.log(options);//这里无法获取到页面参数
    // 获取当前小程序的页面栈-数组  长度最大为10
    // 数组中索引最大的页面就是当前页面
    let pages = getCurrentPages();
    //console.log(pages);
    let currentPage = pages[pages.length - 1];
    //console.log(currentPage);
    const { type } = currentPage.options;
    //根据type值决定激活选中的标签 index=type-1
    this.changeTitleByIndex(type-1);
    this.getOrders(type);
  },

  async getOrders(type) {
    const res = await request({ url: "/my/orders/all", data: { type } });
    this.setData({
      orders:res.orders.map(v=>({...v,create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
    })
  },

  //根据标题索引来激活选中的标题数组
  changeTitleByIndex(index){
    //2， 修改源数组
    let { tabs } = this.data;
    tabs.forEach((v, i) =>
      i === index ? (v.isActive = true) : (v.isActive = false)
    );
    //3,赋值到data
    this.setData({
      tabs,
    });
  },
  handleTabsItemChange(e) {
    //1, 获取被点击的标题索引
    const { index } = e.detail;
    this.changeTitleByIndex(index);
    //2, 切换标签的时候重新发送请求
    this.getOrders(index+1);
  },
});
